package interfaces

import (
	"github.com/gin-gonic/gin"
)


func (s *Server) SetupRouter(r *gin.Engine)  {

	// rpm包管理的接口
	r.POST("/api/rest/ecsdeploy/internal/rpm/put",s.FileUpload)
	r.POST("/api/rest/ecsdeploy/internal/rpm",s.FileUpload)
	// 直接从rpm仓库拉取文件
	r.GET("/api/rest/ecsdeploy/internal/rpm", s.GetRpmFileFromRepository)
	// 静态文件下载
	r.Static("/api/rest/ecsdeploy/internal/rpm/","./files/rpm/")
	r.GET("/api/rest/ecsdeploy/internal/rpms",s.GetRpmDir)
	// 任务接口
	//
	r.GET("/api/rest/ecsdeploy/internal/job/run",s.RunJobRetry)
	r.POST("/api/rest/ecsdeploy/internal/job/run",s.RunJob)
	r.GET("/api/rest/ecsdeploy/internal/job",s.JobStatusEach)
	r.GET("/api/rest/ecsdeploy/internal/job/:jobid",s.JobStatusDetail)
	r.GET("/api/rest/ecsdeploy/internal/job/:jobid/:instance",s.JobInstanceStatusDetail)
	// 任务模板
	//r.GET("/api/rest/ecsdeploy/internal/jobmodel/:modelid",)	// TODO 获取任务模板详情
	//r.GET("/api/rest/ecsdeploy/internal/jobmodel/",)			// TODO 获取任务模板列表
	//r.POST("/api/rest/ecsdeploy/internal/jobmodel/",)			//	TODO 创建模板
	//r.POST("/api/rest/ecsdeploy/internal/jobmodel/:modelid",)	//  TODO 更新模板
	//r.DELETE("/api/rest/ecsdeploy/internal/jobmodel/:modelid",) // TODO 删除模板
	// 部署资源查找接口，通过cmdb,取消
	//r.GET("/ecsdeploy/resource/tag",)  // 通过tag来查找服务器信息
	//r.GET("/ecsdeploy/resource/treenode",)  //  通过组织服务树来查找服务器

	// 获取服务器分组信息
	r.GET("/api/rest/ecsdeploy/internal/instancegroup",s.GetGroupsEach)
	r.GET("/api/rest/ecsdeploy/internal/groups",s.GetAllroups)

	// 服务器分组的增删改查
	// r.GET("/ecsdeploy/instancegroup/:groupid",)	 // 查详情
	r.POST("/api/rest/ecsdeploy/internal/instancegroup/:groupid",s.UpdateGroupDetail)   //修改
	r.POST("/api/rest/ecsdeploy/internal/instancegroup",s.AddGroupDetail)   // 增 ok
	r.DELETE("/api/rest/ecsdeploy/internal/instancegroup/:groupid",s.DeleteGroupDetail)  // 删除
	//r.GET("/ecsdeploy/resource")    //  查找可用的组织服务树、tag信息 取消

	// 实例查询
	r.GET("/api/rest/ecsdeploy/internal/instances",s.AgentList)
	r.GET("/api/rest/ecsdeploy/internal/allinstances",s.GetAgentFromDb)
	r.GET("/api/rest/ecsdeploy/internal/allservers",s.GetAllServerName)

	// admin接口
	r.GET("/api/rest/ecsdeploy/internal/agents",s.AgentList)  // 查看在线的服务器列表
	r.GET("/api/rest/ecsdeploy/internal/admin/agents",s.AgentList)  // 查看在线的服务器列表

	// 上传日志相关
	//r.POST("/api/rest/ecsdeploy/internal/log/listdir",s.PostListDir) // 用户通过这个接口查看所有的文件列表
	//r.POST("/api/rest/ecsdeploy/internal/log/getlog",s.PostGetLog) // 用户通过这个接口向server发送 需要哪些日志的请求
	r.POST("/api/rest/ecsdeploy/internal/log/upload",s.LogUpload) // agent通过这个接口上传日志
	r.Static("/api/rest/ecsdeploy/internal/log/download","./files/log") // 最终用户下载的链接
	r.GET("/api/rest/ecsdeploy/internal/log/get",s.GetLogGet) // 用户查看已经上传过的日志的列表 要求按时间排序  ，最近的在最上面
	r.POST("/api/rest/ecsdeploy/internal/log/getlog",s.GetLogByTime)

	// 配置中心接口
	// 去配置中心拉取配置（1、接收agent的请求 去配置中心获取 2、把数据返回给agent 3、处理最终的结果）
	r.POST("/api/rest/ecsdeploy/internal/conf/agent",s.GetConfFromAgent)
	//  配置发布的接口（1、接收配置发布的指令 2、筛选机器 3、发送指令让agent拉取配置和校验）
	r.POST("/api/rest/ecsdeploy/internal/conf/update",s.PostReportConfUpdate)
	// TODO 启停模拟器的接口
	r.POST("/api/rest/ecsdeploy/internal/avoms",s.PostControlAvoms)
	// TODO rs动态扩缩容
}

